import router from '@/router'
import store from '@/store'

// 白名单
const WhiteList = ['/login', '/404']

// 路由守卫(路由钩子)
// 特点1:全局(可以访问所有的路由), 特点2:所有的路由跳转之前都会进入路由守卫
router.beforeEach((to, from, next) => {
  const token = store.getters.token
  // console.log(token)
  // 1 有token值,表示已登录
  if (token) {
    if (to.path === '/login') {
      // 1.1判断进入的是否是登录页,是登录页跳转到首(主)页 next('/')
      next('/')
    } else {
      // 1.2判断进入的不是登录页 放行 next()
      next()
    }
  } else {
    // 2没有token值
    // console.log(to)
    if (WhiteList.includes(to.path)) {
      // 2.1如果访问的登录页或者404(白名单) 允许进入next(),即访问的登录页进入登录页,访问404进入404
      next()
    } else {
      // 2.2访问的不是登录页或者不是404 ,那就next('/login).如没有token直接访问主页需要跳转登录页,
      next('/login')
    }
  }
})
